<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>Paho C++: mqtt::async_client Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="pahologo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">Paho C++
   &#160;<span id="projectnumber">1.0</span>
   </div>
   <div id="projectbrief">The Paho MQTT C++ Client Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classmqtt_1_1async__client.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Friends</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classmqtt_1_1async__client-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">mqtt::async_client Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation to run in the background.  
 <a href="classmqtt_1_1async__client.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="async__client_8h_source.html">async_client.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mqtt::async_client:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classmqtt_1_1async__client.png" usemap="#mqtt::async_client_map" alt=""/>
  <map id="mqtt::async_client_map" name="mqtt::async_client_map">
<area href="classmqtt_1_1iasync__client.html" title="Enables an application to communicate with an MQTT server using non-blocking methods. " alt="mqtt::iasync_client" shape="rect" coords="0,0,113,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a47a444965a20ce8d44d5d10132b8e087"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a47a444965a20ce8d44d5d10132b8e087"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a47a444965a20ce8d44d5d10132b8e087">ptr_t</a> = std::shared_ptr&lt; <a class="el" href="classmqtt_1_1async__client.html">async_client</a> &gt;</td></tr>
<tr class="memdesc:a47a444965a20ce8d44d5d10132b8e087"><td class="mdescLeft">&#160;</td><td class="mdescRight">Smart/shared pointer for an object of this class. <br/></td></tr>
<tr class="separator:a47a444965a20ce8d44d5d10132b8e087"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45fb67d0f3d678c1d964ec057bf1a473"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45fb67d0f3d678c1d964ec057bf1a473"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a45fb67d0f3d678c1d964ec057bf1a473">consumer_queue_type</a> = std::unique_ptr&lt; <a class="el" href="classmqtt_1_1thread__queue.html">thread_queue</a>&lt; const_message_ptr &gt;&gt;</td></tr>
<tr class="memdesc:a45fb67d0f3d678c1d964ec057bf1a473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for a thread-safe queue to consume messages synchronously. <br/></td></tr>
<tr class="separator:a45fb67d0f3d678c1d964ec057bf1a473"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classmqtt_1_1iasync__client"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classmqtt_1_1iasync__client')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classmqtt_1_1iasync__client.html">mqtt::iasync_client</a></td></tr>
<tr class="memitem:aee95659bed2446d0409ce33479f9cdad inherit pub_types_classmqtt_1_1iasync__client"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee95659bed2446d0409ce33479f9cdad"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iasync__client.html#aee95659bed2446d0409ce33479f9cdad">qos_collection</a> = std::vector&lt; int &gt;</td></tr>
<tr class="memdesc:aee95659bed2446d0409ce33479f9cdad inherit pub_types_classmqtt_1_1iasync__client"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for a collection of QOS values. <br/></td></tr>
<tr class="separator:aee95659bed2446d0409ce33479f9cdad inherit pub_types_classmqtt_1_1iasync__client"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae1c9326c10e7e954b3b30cbf4d06ea8d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#ae1c9326c10e7e954b3b30cbf4d06ea8d">async_client</a> (const string &amp;serverURI, const string &amp;clientId, const string &amp;persistDir)</td></tr>
<tr class="memdesc:ae1c9326c10e7e954b3b30cbf4d06ea8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an <a class="el" href="classmqtt_1_1async__client.html" title="Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation t...">async_client</a> that can be used to communicate with an MQTT server.  <a href="#ae1c9326c10e7e954b3b30cbf4d06ea8d">More...</a><br/></td></tr>
<tr class="separator:ae1c9326c10e7e954b3b30cbf4d06ea8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a443ee1420a9d058fcded62406190b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a9a443ee1420a9d058fcded62406190b4">async_client</a> (const string &amp;serverURI, const string &amp;clientId, <a class="el" href="classmqtt_1_1iclient__persistence.html">iclient_persistence</a> *persistence=nullptr)</td></tr>
<tr class="memdesc:a9a443ee1420a9d058fcded62406190b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an <a class="el" href="classmqtt_1_1async__client.html" title="Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation t...">async_client</a> that can be used to communicate with an MQTT server.  <a href="#a9a443ee1420a9d058fcded62406190b4">More...</a><br/></td></tr>
<tr class="separator:a9a443ee1420a9d058fcded62406190b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeacf166a53c88bb9b80e0103d0710e89"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#aeacf166a53c88bb9b80e0103d0710e89">async_client</a> (const string &amp;serverURI, const string &amp;clientId, int maxBufferedMessages, const string &amp;persistDir)</td></tr>
<tr class="memdesc:aeacf166a53c88bb9b80e0103d0710e89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an <a class="el" href="classmqtt_1_1async__client.html" title="Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation t...">async_client</a> that can be used to communicate with an MQTT server, which allows for off-line message buffering.  <a href="#aeacf166a53c88bb9b80e0103d0710e89">More...</a><br/></td></tr>
<tr class="separator:aeacf166a53c88bb9b80e0103d0710e89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af78d2578ea52db0887323c8824429248"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#af78d2578ea52db0887323c8824429248">async_client</a> (const string &amp;serverURI, const string &amp;clientId, int maxBufferedMessages, <a class="el" href="classmqtt_1_1iclient__persistence.html">iclient_persistence</a> *persistence=nullptr)</td></tr>
<tr class="memdesc:af78d2578ea52db0887323c8824429248"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an <a class="el" href="classmqtt_1_1async__client.html" title="Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation t...">async_client</a> that can be used to communicate with an MQTT server, which allows for off-line message buffering.  <a href="#af78d2578ea52db0887323c8824429248">More...</a><br/></td></tr>
<tr class="separator:af78d2578ea52db0887323c8824429248"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad42f0639330fffbfe8b9d010be301613"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad42f0639330fffbfe8b9d010be301613"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#ad42f0639330fffbfe8b9d010be301613">~async_client</a> () override</td></tr>
<tr class="memdesc:ad42f0639330fffbfe8b9d010be301613"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br/></td></tr>
<tr class="separator:ad42f0639330fffbfe8b9d010be301613"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee06a4438b2075de021bbf8d5b6b0c33"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#aee06a4438b2075de021bbf8d5b6b0c33">connect</a> () override</td></tr>
<tr class="memdesc:aee06a4438b2075de021bbf8d5b6b0c33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connects to an MQTT server using the default options.  <a href="#aee06a4438b2075de021bbf8d5b6b0c33">More...</a><br/></td></tr>
<tr class="separator:aee06a4438b2075de021bbf8d5b6b0c33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4546820d1ee0426c2964327c6d654a0"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#af4546820d1ee0426c2964327c6d654a0">connect</a> (<a class="el" href="classmqtt_1_1connect__options.html">connect_options</a> options) override</td></tr>
<tr class="memdesc:af4546820d1ee0426c2964327c6d654a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connects to an MQTT server using the provided connect options.  <a href="#af4546820d1ee0426c2964327c6d654a0">More...</a><br/></td></tr>
<tr class="separator:af4546820d1ee0426c2964327c6d654a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6599c1a530dda9fa66effb0d706d6795"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a6599c1a530dda9fa66effb0d706d6795">connect</a> (<a class="el" href="classmqtt_1_1connect__options.html">connect_options</a> options, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb) override</td></tr>
<tr class="memdesc:a6599c1a530dda9fa66effb0d706d6795"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connects to an MQTT server using the specified options.  <a href="#a6599c1a530dda9fa66effb0d706d6795">More...</a><br/></td></tr>
<tr class="separator:a6599c1a530dda9fa66effb0d706d6795"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae68c924e65104b40488cba072597baeb"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#ae68c924e65104b40488cba072597baeb">connect</a> (void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb) override</td></tr>
<tr class="separator:ae68c924e65104b40488cba072597baeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93cad44caab9aa829745477b170eae3d"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a93cad44caab9aa829745477b170eae3d">reconnect</a> () override</td></tr>
<tr class="memdesc:a93cad44caab9aa829745477b170eae3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reconnects the client using options from the previous connect.  <a href="#a93cad44caab9aa829745477b170eae3d">More...</a><br/></td></tr>
<tr class="separator:a93cad44caab9aa829745477b170eae3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a376960f9e1fbe5e40136f2f07b22d780"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a376960f9e1fbe5e40136f2f07b22d780">disconnect</a> () override</td></tr>
<tr class="memdesc:a376960f9e1fbe5e40136f2f07b22d780"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects from the server.  <a href="#a376960f9e1fbe5e40136f2f07b22d780">More...</a><br/></td></tr>
<tr class="separator:a376960f9e1fbe5e40136f2f07b22d780"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d6e9ada464133778f0154da32eefc61"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a2d6e9ada464133778f0154da32eefc61">disconnect</a> (<a class="el" href="classmqtt_1_1disconnect__options.html">disconnect_options</a> opts) override</td></tr>
<tr class="memdesc:a2d6e9ada464133778f0154da32eefc61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects from the server.  <a href="#a2d6e9ada464133778f0154da32eefc61">More...</a><br/></td></tr>
<tr class="separator:a2d6e9ada464133778f0154da32eefc61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56ccd6989f8839a35954776de682a29b"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a56ccd6989f8839a35954776de682a29b">disconnect</a> (int timeout) override</td></tr>
<tr class="memdesc:a56ccd6989f8839a35954776de682a29b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects from the server.  <a href="#a56ccd6989f8839a35954776de682a29b">More...</a><br/></td></tr>
<tr class="separator:a56ccd6989f8839a35954776de682a29b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad56d21f49709f195e1af37becfc4e0ee"><td class="memTemplParams" colspan="2">template&lt;class Rep , class Period &gt; </td></tr>
<tr class="memitem:ad56d21f49709f195e1af37becfc4e0ee"><td class="memTemplItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#ad56d21f49709f195e1af37becfc4e0ee">disconnect</a> (const std::chrono::duration&lt; Rep, Period &gt; &amp;timeout)</td></tr>
<tr class="memdesc:ad56d21f49709f195e1af37becfc4e0ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects from the server.  <a href="#ad56d21f49709f195e1af37becfc4e0ee">More...</a><br/></td></tr>
<tr class="separator:ad56d21f49709f195e1af37becfc4e0ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7cd2e2e1281312273ea0a5f18607f03"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#aa7cd2e2e1281312273ea0a5f18607f03">disconnect</a> (int timeout, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb) override</td></tr>
<tr class="memdesc:aa7cd2e2e1281312273ea0a5f18607f03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects from the server.  <a href="#aa7cd2e2e1281312273ea0a5f18607f03">More...</a><br/></td></tr>
<tr class="separator:aa7cd2e2e1281312273ea0a5f18607f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f9175e2992ec07e0d27286f875ba107"><td class="memTemplParams" colspan="2">template&lt;class Rep , class Period &gt; </td></tr>
<tr class="memitem:a5f9175e2992ec07e0d27286f875ba107"><td class="memTemplItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a5f9175e2992ec07e0d27286f875ba107">disconnect</a> (const std::chrono::duration&lt; Rep, Period &gt; &amp;timeout, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb)</td></tr>
<tr class="memdesc:a5f9175e2992ec07e0d27286f875ba107"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects from the server.  <a href="#a5f9175e2992ec07e0d27286f875ba107">More...</a><br/></td></tr>
<tr class="separator:a5f9175e2992ec07e0d27286f875ba107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf9676f95c8b6c1b4a605d5fd8b8c251"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#adf9676f95c8b6c1b4a605d5fd8b8c251">disconnect</a> (void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb) override</td></tr>
<tr class="memdesc:adf9676f95c8b6c1b4a605d5fd8b8c251"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnects from the server.  <a href="#adf9676f95c8b6c1b4a605d5fd8b8c251">More...</a><br/></td></tr>
<tr class="separator:adf9676f95c8b6c1b4a605d5fd8b8c251"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adac62c2c80ed3a1c32582b97e6e357ed"><td class="memItemLeft" align="right" valign="top">delivery_token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#adac62c2c80ed3a1c32582b97e6e357ed">get_pending_delivery_token</a> (int msgID) const override</td></tr>
<tr class="memdesc:adac62c2c80ed3a1c32582b97e6e357ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the delivery token for the specified message ID.  <a href="#adac62c2c80ed3a1c32582b97e6e357ed">More...</a><br/></td></tr>
<tr class="separator:adac62c2c80ed3a1c32582b97e6e357ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec00d760cb3a6db6ac633c48365207d5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; delivery_token_ptr &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#aec00d760cb3a6db6ac633c48365207d5">get_pending_delivery_tokens</a> () const override</td></tr>
<tr class="memdesc:aec00d760cb3a6db6ac633c48365207d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the delivery tokens for any outstanding publish operations.  <a href="#aec00d760cb3a6db6ac633c48365207d5">More...</a><br/></td></tr>
<tr class="separator:aec00d760cb3a6db6ac633c48365207d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8105627f112a23e5c8067901cf1650a2"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a8105627f112a23e5c8067901cf1650a2">get_client_id</a> () const override</td></tr>
<tr class="memdesc:a8105627f112a23e5c8067901cf1650a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the client ID used by this client.  <a href="#a8105627f112a23e5c8067901cf1650a2">More...</a><br/></td></tr>
<tr class="separator:a8105627f112a23e5c8067901cf1650a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2cc6dc75715f467c8c0556f0f0c6c04"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#ad2cc6dc75715f467c8c0556f0f0c6c04">get_server_uri</a> () const override</td></tr>
<tr class="memdesc:ad2cc6dc75715f467c8c0556f0f0c6c04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address of the server used by this client.  <a href="#ad2cc6dc75715f467c8c0556f0f0c6c04">More...</a><br/></td></tr>
<tr class="separator:ad2cc6dc75715f467c8c0556f0f0c6c04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefe2b8717b52d9b6c92f0ea8d89a3dbe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#aefe2b8717b52d9b6c92f0ea8d89a3dbe">is_connected</a> () const override</td></tr>
<tr class="memdesc:aefe2b8717b52d9b6c92f0ea8d89a3dbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if this client is currently connected to the server.  <a href="#aefe2b8717b52d9b6c92f0ea8d89a3dbe">More...</a><br/></td></tr>
<tr class="separator:aefe2b8717b52d9b6c92f0ea8d89a3dbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fa8d3dd5b88a5643dcd28e5069da8a5"><td class="memItemLeft" align="right" valign="top">delivery_token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a7fa8d3dd5b88a5643dcd28e5069da8a5">publish</a> (<a class="el" href="classmqtt_1_1buffer__ref.html">string_ref</a> <a class="el" href="classmqtt_1_1topic.html">topic</a>, const void *payload, size_t n, int qos, bool retained) override</td></tr>
<tr class="memdesc:a7fa8d3dd5b88a5643dcd28e5069da8a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Publishes a message to a topic on the server.  <a href="#a7fa8d3dd5b88a5643dcd28e5069da8a5">More...</a><br/></td></tr>
<tr class="separator:a7fa8d3dd5b88a5643dcd28e5069da8a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a425e5e48369a523378b6c92de7bf4b85"><td class="memItemLeft" align="right" valign="top">delivery_token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a425e5e48369a523378b6c92de7bf4b85">publish</a> (<a class="el" href="classmqtt_1_1buffer__ref.html">string_ref</a> <a class="el" href="classmqtt_1_1topic.html">topic</a>, const void *payload, size_t n) override</td></tr>
<tr class="memdesc:a425e5e48369a523378b6c92de7bf4b85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Publishes a message to a topic on the server.  <a href="#a425e5e48369a523378b6c92de7bf4b85">More...</a><br/></td></tr>
<tr class="separator:a425e5e48369a523378b6c92de7bf4b85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcb723eb44fccf64e18b2a25acd938b5"><td class="memItemLeft" align="right" valign="top">delivery_token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#afcb723eb44fccf64e18b2a25acd938b5">publish</a> (<a class="el" href="classmqtt_1_1buffer__ref.html">string_ref</a> <a class="el" href="classmqtt_1_1topic.html">topic</a>, <a class="el" href="classmqtt_1_1buffer__ref.html">binary_ref</a> payload, int qos, bool retained) override</td></tr>
<tr class="memdesc:afcb723eb44fccf64e18b2a25acd938b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Publishes a message to a topic on the server.  <a href="#afcb723eb44fccf64e18b2a25acd938b5">More...</a><br/></td></tr>
<tr class="separator:afcb723eb44fccf64e18b2a25acd938b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a804df67eff69884958d897294194a351"><td class="memItemLeft" align="right" valign="top">delivery_token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a804df67eff69884958d897294194a351">publish</a> (<a class="el" href="classmqtt_1_1buffer__ref.html">string_ref</a> <a class="el" href="classmqtt_1_1topic.html">topic</a>, <a class="el" href="classmqtt_1_1buffer__ref.html">binary_ref</a> payload) override</td></tr>
<tr class="memdesc:a804df67eff69884958d897294194a351"><td class="mdescLeft">&#160;</td><td class="mdescRight">Publishes a message to a topic on the server.  <a href="#a804df67eff69884958d897294194a351">More...</a><br/></td></tr>
<tr class="separator:a804df67eff69884958d897294194a351"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a8b3e11497b2aa1204f1ca380e81490"><td class="memItemLeft" align="right" valign="top">delivery_token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a3a8b3e11497b2aa1204f1ca380e81490">publish</a> (<a class="el" href="classmqtt_1_1buffer__ref.html">string_ref</a> <a class="el" href="classmqtt_1_1topic.html">topic</a>, const void *payload, size_t n, int qos, bool retained, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb) override</td></tr>
<tr class="memdesc:a3a8b3e11497b2aa1204f1ca380e81490"><td class="mdescLeft">&#160;</td><td class="mdescRight">Publishes a message to a topic on the server.  <a href="#a3a8b3e11497b2aa1204f1ca380e81490">More...</a><br/></td></tr>
<tr class="separator:a3a8b3e11497b2aa1204f1ca380e81490"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1dbbe800b37c395e45aeb5ddd725ffd"><td class="memItemLeft" align="right" valign="top">delivery_token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#af1dbbe800b37c395e45aeb5ddd725ffd">publish</a> (const_message_ptr msg) override</td></tr>
<tr class="memdesc:af1dbbe800b37c395e45aeb5ddd725ffd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Publishes a message to a topic on the server Takes an Message message and delivers it to the server at the requested quality of service.  <a href="#af1dbbe800b37c395e45aeb5ddd725ffd">More...</a><br/></td></tr>
<tr class="separator:af1dbbe800b37c395e45aeb5ddd725ffd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06ce15b7a304e7f091db2642308a91e2"><td class="memItemLeft" align="right" valign="top">delivery_token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a06ce15b7a304e7f091db2642308a91e2">publish</a> (const_message_ptr msg, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb) override</td></tr>
<tr class="memdesc:a06ce15b7a304e7f091db2642308a91e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Publishes a message to a topic on the server.  <a href="#a06ce15b7a304e7f091db2642308a91e2">More...</a><br/></td></tr>
<tr class="separator:a06ce15b7a304e7f091db2642308a91e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b09cc4d4788420926725b7df00d3448"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a8b09cc4d4788420926725b7df00d3448">set_callback</a> (<a class="el" href="classmqtt_1_1callback.html">callback</a> &amp;cb) override</td></tr>
<tr class="memdesc:a8b09cc4d4788420926725b7df00d3448"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a callback listener to use for events that happen asynchronously.  <a href="#a8b09cc4d4788420926725b7df00d3448">More...</a><br/></td></tr>
<tr class="separator:a8b09cc4d4788420926725b7df00d3448"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae88e293c7e1431ff7a2f74d032b5fd4b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#ae88e293c7e1431ff7a2f74d032b5fd4b">disable_callbacks</a> () override</td></tr>
<tr class="memdesc:ae88e293c7e1431ff7a2f74d032b5fd4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops callbacks.  <a href="#ae88e293c7e1431ff7a2f74d032b5fd4b">More...</a><br/></td></tr>
<tr class="separator:ae88e293c7e1431ff7a2f74d032b5fd4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b20a22af1069ef41c27566698bd90bd"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a8b20a22af1069ef41c27566698bd90bd">subscribe</a> (const_string_collection_ptr topicFilters, const <a class="el" href="classmqtt_1_1iasync__client.html#aee95659bed2446d0409ce33479f9cdad">qos_collection</a> &amp;qos) override</td></tr>
<tr class="memdesc:a8b20a22af1069ef41c27566698bd90bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subscribe to multiple topics, each of which may include wildcards.  <a href="#a8b20a22af1069ef41c27566698bd90bd">More...</a><br/></td></tr>
<tr class="separator:a8b20a22af1069ef41c27566698bd90bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a001340b074ef676bee012156dde830a1"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a001340b074ef676bee012156dde830a1">subscribe</a> (const_string_collection_ptr topicFilters, const <a class="el" href="classmqtt_1_1iasync__client.html#aee95659bed2446d0409ce33479f9cdad">qos_collection</a> &amp;qos, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb) override</td></tr>
<tr class="memdesc:a001340b074ef676bee012156dde830a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subscribes to multiple topics, each of which may include wildcards.  <a href="#a001340b074ef676bee012156dde830a1">More...</a><br/></td></tr>
<tr class="separator:a001340b074ef676bee012156dde830a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab250f9c6d9c8afd85c6e2038e640116f"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#ab250f9c6d9c8afd85c6e2038e640116f">subscribe</a> (const string &amp;topicFilter, int qos) override</td></tr>
<tr class="memdesc:ab250f9c6d9c8afd85c6e2038e640116f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subscribe to a topic, which may include wildcards.  <a href="#ab250f9c6d9c8afd85c6e2038e640116f">More...</a><br/></td></tr>
<tr class="separator:ab250f9c6d9c8afd85c6e2038e640116f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c1a7a708c40ebaf10ed8488c5557227"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a0c1a7a708c40ebaf10ed8488c5557227">subscribe</a> (const string &amp;topicFilter, int qos, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb) override</td></tr>
<tr class="memdesc:a0c1a7a708c40ebaf10ed8488c5557227"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subscribe to a topic, which may include wildcards.  <a href="#a0c1a7a708c40ebaf10ed8488c5557227">More...</a><br/></td></tr>
<tr class="separator:a0c1a7a708c40ebaf10ed8488c5557227"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae709e53471db54ec614bcc9d8978361e"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#ae709e53471db54ec614bcc9d8978361e">unsubscribe</a> (const string &amp;topicFilter) override</td></tr>
<tr class="memdesc:ae709e53471db54ec614bcc9d8978361e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests the server unsubscribe the client from a topic.  <a href="#ae709e53471db54ec614bcc9d8978361e">More...</a><br/></td></tr>
<tr class="separator:ae709e53471db54ec614bcc9d8978361e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afff45a1d3c206dfddbea1940ae139711"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#afff45a1d3c206dfddbea1940ae139711">unsubscribe</a> (const_string_collection_ptr topicFilters) override</td></tr>
<tr class="memdesc:afff45a1d3c206dfddbea1940ae139711"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests the server unsubscribe the client from one or more topics.  <a href="#afff45a1d3c206dfddbea1940ae139711">More...</a><br/></td></tr>
<tr class="separator:afff45a1d3c206dfddbea1940ae139711"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54d438ed68ccc28835d66097e87f0825"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a54d438ed68ccc28835d66097e87f0825">unsubscribe</a> (const_string_collection_ptr topicFilters, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb) override</td></tr>
<tr class="memdesc:a54d438ed68ccc28835d66097e87f0825"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests the server unsubscribe the client from one or more topics.  <a href="#a54d438ed68ccc28835d66097e87f0825">More...</a><br/></td></tr>
<tr class="separator:a54d438ed68ccc28835d66097e87f0825"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75f8e6088b58af227b576153471da7ca"><td class="memItemLeft" align="right" valign="top">token_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a75f8e6088b58af227b576153471da7ca">unsubscribe</a> (const string &amp;topicFilter, void *userContext, <a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;cb) override</td></tr>
<tr class="memdesc:a75f8e6088b58af227b576153471da7ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests the server unsubscribe the client from a topics.  <a href="#a75f8e6088b58af227b576153471da7ca">More...</a><br/></td></tr>
<tr class="separator:a75f8e6088b58af227b576153471da7ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcdbc13e54bb4ba1e52e8e405297d170"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#abcdbc13e54bb4ba1e52e8e405297d170">start_consuming</a> ()</td></tr>
<tr class="memdesc:abcdbc13e54bb4ba1e52e8e405297d170"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start consuming messages.  <a href="#abcdbc13e54bb4ba1e52e8e405297d170">More...</a><br/></td></tr>
<tr class="separator:abcdbc13e54bb4ba1e52e8e405297d170"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5aaa839a2832009148202fa5a81c4f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#ab5aaa839a2832009148202fa5a81c4f2">stop_consuming</a> ()</td></tr>
<tr class="memdesc:ab5aaa839a2832009148202fa5a81c4f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop consuming messages.  <a href="#ab5aaa839a2832009148202fa5a81c4f2">More...</a><br/></td></tr>
<tr class="separator:ab5aaa839a2832009148202fa5a81c4f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a479e2e058c190b575f75a17cdc08299b"><td class="memItemLeft" align="right" valign="top">const_message_ptr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a479e2e058c190b575f75a17cdc08299b">consume_message</a> ()</td></tr>
<tr class="memdesc:a479e2e058c190b575f75a17cdc08299b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the next message from the queue.  <a href="#a479e2e058c190b575f75a17cdc08299b">More...</a><br/></td></tr>
<tr class="separator:a479e2e058c190b575f75a17cdc08299b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9260ee858860df9d39dd570cc15f56a1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a9260ee858860df9d39dd570cc15f56a1">try_consume_message</a> (const_message_ptr *msg)</td></tr>
<tr class="memdesc:a9260ee858860df9d39dd570cc15f56a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to read the next message from the queue without blocking.  <a href="#a9260ee858860df9d39dd570cc15f56a1">More...</a><br/></td></tr>
<tr class="separator:a9260ee858860df9d39dd570cc15f56a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5613bf9226d6ad9b8dcf15a238c18c23"><td class="memTemplParams" colspan="2">template&lt;typename Rep , class Period &gt; </td></tr>
<tr class="memitem:a5613bf9226d6ad9b8dcf15a238c18c23"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a5613bf9226d6ad9b8dcf15a238c18c23">try_consume_message_for</a> (const_message_ptr *msg, const std::chrono::duration&lt; Rep, Period &gt; &amp;relTime)</td></tr>
<tr class="memdesc:a5613bf9226d6ad9b8dcf15a238c18c23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits a limited time for a message to arrive.  <a href="#a5613bf9226d6ad9b8dcf15a238c18c23">More...</a><br/></td></tr>
<tr class="separator:a5613bf9226d6ad9b8dcf15a238c18c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bc99d5afd5d35aeb0888ff6c08b9ed0"><td class="memTemplParams" colspan="2">template&lt;class Clock , class Duration &gt; </td></tr>
<tr class="memitem:a8bc99d5afd5d35aeb0888ff6c08b9ed0"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#a8bc99d5afd5d35aeb0888ff6c08b9ed0">try_consume_message_until</a> (const_message_ptr *msg, const std::chrono::time_point&lt; Clock, Duration &gt; &amp;absTime)</td></tr>
<tr class="memdesc:a8bc99d5afd5d35aeb0888ff6c08b9ed0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits until a specific time for a message to occur.  <a href="#a8bc99d5afd5d35aeb0888ff6c08b9ed0">More...</a><br/></td></tr>
<tr class="separator:a8bc99d5afd5d35aeb0888ff6c08b9ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classmqtt_1_1iasync__client"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classmqtt_1_1iasync__client')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmqtt_1_1iasync__client.html">mqtt::iasync_client</a></td></tr>
<tr class="memitem:a423bdce3b018de4597f773402f3eb360 inherit pub_methods_classmqtt_1_1iasync__client"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a423bdce3b018de4597f773402f3eb360"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1iasync__client.html#a423bdce3b018de4597f773402f3eb360">~iasync_client</a> ()</td></tr>
<tr class="memdesc:a423bdce3b018de4597f773402f3eb360 inherit pub_methods_classmqtt_1_1iasync__client"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br/></td></tr>
<tr class="separator:a423bdce3b018de4597f773402f3eb360 inherit pub_methods_classmqtt_1_1iasync__client"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ad1520136c41afff5cd24bf19d9bf76e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1520136c41afff5cd24bf19d9bf76e5"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmqtt_1_1async__client.html#ad1520136c41afff5cd24bf19d9bf76e5">token</a></td></tr>
<tr class="memdesc:ad1520136c41afff5cd24bf19d9bf76e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manage internal list of active tokens. <br/></td></tr>
<tr class="separator:ad1520136c41afff5cd24bf19d9bf76e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation to run in the background. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae1c9326c10e7e954b3b30cbf4d06ea8d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mqtt::async_client::async_client </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>serverURI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>clientId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>persistDir</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an <a class="el" href="classmqtt_1_1async__client.html" title="Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation t...">async_client</a> that can be used to communicate with an MQTT server. </p>
<p>This uses file-based persistence in the specified directory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">serverURI</td><td>the address of the server to connect to, specified as a URI. </td></tr>
    <tr><td class="paramname">clientId</td><td>a client identifier that is unique on the server being connected to </td></tr>
    <tr><td class="paramname">persistDir</td><td>The directory to use for persistence data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9a443ee1420a9d058fcded62406190b4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mqtt::async_client::async_client </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>serverURI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>clientId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iclient__persistence.html">iclient_persistence</a> *&#160;</td>
          <td class="paramname"><em>persistence</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an <a class="el" href="classmqtt_1_1async__client.html" title="Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation t...">async_client</a> that can be used to communicate with an MQTT server. </p>
<p>This allows the caller to specify a user-defined persistence object, or use no persistence. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">serverURI</td><td>the address of the server to connect to, specified as a URI. </td></tr>
    <tr><td class="paramname">clientId</td><td>a client identifier that is unique on the server being connected to </td></tr>
    <tr><td class="paramname">persistence</td><td>The user persistence structure. If this is null, then no persistence is used. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aeacf166a53c88bb9b80e0103d0710e89"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mqtt::async_client::async_client </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>serverURI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>clientId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>maxBufferedMessages</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>persistDir</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an <a class="el" href="classmqtt_1_1async__client.html" title="Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation t...">async_client</a> that can be used to communicate with an MQTT server, which allows for off-line message buffering. </p>
<p>This uses file-based persistence in the specified directory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">serverURI</td><td>the address of the server to connect to, specified as a URI. </td></tr>
    <tr><td class="paramname">clientId</td><td>a client identifier that is unique on the server being connected to </td></tr>
    <tr><td class="paramname">maxBufferedMessages</td><td>the maximum number of messages allowed to be buffered while not connected </td></tr>
    <tr><td class="paramname">persistDir</td><td>The directory to use for persistence data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af78d2578ea52db0887323c8824429248"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mqtt::async_client::async_client </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>serverURI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>clientId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>maxBufferedMessages</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iclient__persistence.html">iclient_persistence</a> *&#160;</td>
          <td class="paramname"><em>persistence</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an <a class="el" href="classmqtt_1_1async__client.html" title="Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation t...">async_client</a> that can be used to communicate with an MQTT server, which allows for off-line message buffering. </p>
<p>This allows the caller to specify a user-defined persistence object, or use no persistence. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">serverURI</td><td>the address of the server to connect to, specified as a URI. </td></tr>
    <tr><td class="paramname">clientId</td><td>a client identifier that is unique on the server being connected to </td></tr>
    <tr><td class="paramname">maxBufferedMessages</td><td>the maximum number of messages allowed to be buffered while not connected </td></tr>
    <tr><td class="paramname">persistence</td><td>The user persistence structure. If this is null, then no persistence is used. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aee06a4438b2075de021bbf8d5b6b0c33"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::connect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Connects to an MQTT server using the default options. </p>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the connect to complete. The token will be passed to any callback that has been set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for non security related problems </td></tr>
    <tr><td class="paramname"><a class="el" href="classmqtt_1_1security__exception.html" title="Thrown when a client is not authorized to perform an operation, or if there is a problem with the sec...">security_exception</a></td><td>for security related problems </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a21c51c547dbc75fcd45b5ab87523f5e1">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="af4546820d1ee0426c2964327c6d654a0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::connect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1connect__options.html">connect_options</a>&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Connects to an MQTT server using the provided connect options. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">options</td><td>a set of connection parameters that override the defaults. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the connect to complete. The token will be passed to any callback that has been set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for non security related problems </td></tr>
    <tr><td class="paramname"><a class="el" href="classmqtt_1_1security__exception.html" title="Thrown when a client is not authorized to perform an operation, or if there is a problem with the sec...">security_exception</a></td><td>for security related problems </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#acfe9902e93ce9e8c80f5d13049df3289">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a6599c1a530dda9fa66effb0d706d6795"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::connect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1connect__options.html">connect_options</a>&#160;</td>
          <td class="paramname"><em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Connects to an MQTT server using the specified options. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">options</td><td>a set of connection parameters that override the defaults. </td></tr>
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td>callback listener that will be notified when the connect completes. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the connect to complete. The token will be passed to any callback that has been set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for non security related problems </td></tr>
    <tr><td class="paramname"><a class="el" href="classmqtt_1_1security__exception.html" title="Thrown when a client is not authorized to perform an operation, or if there is a problem with the sec...">security_exception</a></td><td>for security related problems </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a3cd5b23ef0ade37a574a82a603c07b95">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="ae68c924e65104b40488cba072597baeb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::connect </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td>callback listener that will be notified when the connect completes. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the connect to complete. The token will be passed to any callback that has been set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for non security related problems </td></tr>
    <tr><td class="paramname"><a class="el" href="classmqtt_1_1security__exception.html" title="Thrown when a client is not authorized to perform an operation, or if there is a problem with the sec...">security_exception</a></td><td>for security related problems </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a90b1e036050d0e3c9628f21bc74c5ac2">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a479e2e058c190b575f75a17cdc08299b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const_message_ptr mqtt::async_client::consume_message </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Read the next message from the queue. </p>
<p>This blocks until a new message arrives. </p>
<dl class="section return"><dt>Returns</dt><dd>The message and topic. </dd></dl>

</div>
</div>
<a class="anchor" id="ae88e293c7e1431ff7a2f74d032b5fd4b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void mqtt::async_client::disable_callbacks </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Stops callbacks. </p>
<p>This is not normally called by the application. It should be used cautiously as it may cause the application to lose messages. </p>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a137e34c3acb046deac069cd689459447">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a376960f9e1fbe5e40136f2f07b22d780"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::disconnect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Disconnects from the server. </p>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the disconnect to complete. The token will be passed to any callback that has been set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for problems encountered while disconnecting </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#af6210f0a971f093fca297e3c8677132a">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a2d6e9ada464133778f0154da32eefc61"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::disconnect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1disconnect__options.html">disconnect_options</a>&#160;</td>
          <td class="paramname"><em>opts</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Disconnects from the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">opts</td><td>Options for disconnecting. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the disconnect to complete. The token will be passed to any callback that has been set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for problems encountered while disconnecting </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#aa86156916f955141d6255592c0670330">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a56ccd6989f8839a35954776de682a29b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::disconnect </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Disconnects from the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>the amount of time in milliseconds to allow for existing work to finish before disconnecting. A value of zero or less means the client will not quiesce. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Token used to track and wait for disconnect to complete. The token will be passed to the callback methods if a callback is set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for problems encountered while disconnecting </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#afca077c741725367b9f2d2299ebe6aa8">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="ad56d21f49709f195e1af37becfc4e0ee"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Rep , class Period &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::disconnect </td>
          <td>(</td>
          <td class="paramtype">const std::chrono::duration&lt; Rep, Period &gt; &amp;&#160;</td>
          <td class="paramname"><em>timeout</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Disconnects from the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>the amount of time in milliseconds to allow for existing work to finish before disconnecting. A value of zero or less means the client will not quiesce. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Token used to track and wait for disconnect to complete. The token will be passed to the callback methods if a callback is set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for problems encountered while disconnecting </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa7cd2e2e1281312273ea0a5f18607f03"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::disconnect </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>timeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Disconnects from the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>the amount of time in milliseconds to allow for existing work to finish before disconnecting. A value of zero or less means the client will not quiesce. </td></tr>
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td>callback listener that will be notified when the disconnect completes. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token_ptr Token used to track and wait for disconnect to complete. The token will be passed to the callback methods if a callback is set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for problems encountered while disconnecting </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#af0765c3d5b9890ec6fb732339a409489">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a5f9175e2992ec07e0d27286f875ba107"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Rep , class Period &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::disconnect </td>
          <td>(</td>
          <td class="paramtype">const std::chrono::duration&lt; Rep, Period &gt; &amp;&#160;</td>
          <td class="paramname"><em>timeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Disconnects from the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout</td><td>the amount of time in milliseconds to allow for existing work to finish before disconnecting. A value of zero or less means the client will not quiesce. </td></tr>
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td>callback listener that will be notified when the disconnect completes. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token_ptr Token used to track and wait for disconnect to complete. The token will be passed to the callback methods if a callback is set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for problems encountered while disconnecting </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adf9676f95c8b6c1b4a605d5fd8b8c251"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::disconnect </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Disconnects from the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td>callback listener that will be notified when the disconnect completes. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token_ptr Token used to track and wait for disconnect to complete. The token will be passed to the callback methods if a callback is set. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">exception</td><td>for problems encountered while disconnecting </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#ab0bc5689995d3755ae29d75a3e8d7a1b">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a8105627f112a23e5c8067901cf1650a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">string mqtt::async_client::get_client_id </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the client ID used by this client. </p>
<dl class="section return"><dt>Returns</dt><dd>The client ID used by this client. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a984c922348948b9e57f41d77a0487403">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="adac62c2c80ed3a1c32582b97e6e357ed"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">delivery_token_ptr mqtt::async_client::get_pending_delivery_token </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>msgID</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the delivery token for the specified message ID. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classmqtt_1_1delivery__token.html" title="Provides a mechanism to track the delivery progress of a message. ">delivery_token</a> </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a4be5917b3f0d0ed0347f50446bc034d9">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="aec00d760cb3a6db6ac633c48365207d5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;delivery_token_ptr&gt; mqtt::async_client::get_pending_delivery_tokens </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the delivery tokens for any outstanding publish operations. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classmqtt_1_1delivery__token.html" title="Provides a mechanism to track the delivery progress of a message. ">delivery_token</a>[] </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#acd75b0c39458f65ca02ec37bd8c70f5a">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="ad2cc6dc75715f467c8c0556f0f0c6c04"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">string mqtt::async_client::get_server_uri </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the address of the server used by this client. </p>
<dl class="section return"><dt>Returns</dt><dd>The server's address, as a URI String. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a18a9a1dba6ef043c09f49f1be75f297b">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="aefe2b8717b52d9b6c92f0ea8d89a3dbe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool mqtt::async_client::is_connected </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if this client is currently connected to the server. </p>
<dl class="section return"><dt>Returns</dt><dd>true if connected, false otherwise. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a2c486e40ac2c91890d7ae40ef5223c92">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a7fa8d3dd5b88a5643dcd28e5069da8a5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">delivery_token_ptr mqtt::async_client::publish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1buffer__ref.html">string_ref</a>&#160;</td>
          <td class="paramname"><em>topic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>payload</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>qos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>retained</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Publishes a message to a topic on the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topic</td><td>The topic to deliver the message to </td></tr>
    <tr><td class="paramname">payload</td><td>the bytes to use as the message payload </td></tr>
    <tr><td class="paramname">n</td><td>the number of bytes in the payload </td></tr>
    <tr><td class="paramname">qos</td><td>the Quality of Service to deliver the message at. Valid values are 0, 1 or 2. </td></tr>
    <tr><td class="paramname">retained</td><td>whether or not this message should be retained by the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the publish to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#ace79b81482256ee2c8bb26ad261d3a64">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a425e5e48369a523378b6c92de7bf4b85"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">delivery_token_ptr mqtt::async_client::publish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1buffer__ref.html">string_ref</a>&#160;</td>
          <td class="paramname"><em>topic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>payload</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Publishes a message to a topic on the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topic</td><td>The topic to deliver the message to </td></tr>
    <tr><td class="paramname">payload</td><td>the bytes to use as the message payload </td></tr>
    <tr><td class="paramname">n</td><td>the number of bytes in the payload </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the publish to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a4ac1db0b2d34fda55ee7304cecda87b0">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="afcb723eb44fccf64e18b2a25acd938b5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">delivery_token_ptr mqtt::async_client::publish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1buffer__ref.html">string_ref</a>&#160;</td>
          <td class="paramname"><em>topic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1buffer__ref.html">binary_ref</a>&#160;</td>
          <td class="paramname"><em>payload</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>qos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>retained</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Publishes a message to a topic on the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topic</td><td>The topic to deliver the message to </td></tr>
    <tr><td class="paramname">payload</td><td>the bytes to use as the message payload </td></tr>
    <tr><td class="paramname">qos</td><td>the Quality of Service to deliver the message at. Valid values are 0, 1 or 2. </td></tr>
    <tr><td class="paramname">retained</td><td>whether or not this message should be retained by the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the publish to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a979e6283426180926f9357b392593db2">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a804df67eff69884958d897294194a351"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">delivery_token_ptr mqtt::async_client::publish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1buffer__ref.html">string_ref</a>&#160;</td>
          <td class="paramname"><em>topic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1buffer__ref.html">binary_ref</a>&#160;</td>
          <td class="paramname"><em>payload</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Publishes a message to a topic on the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topic</td><td>The topic to deliver the message to </td></tr>
    <tr><td class="paramname">payload</td><td>the bytes to use as the message payload </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the publish to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#ac5190486cc5570afb1b01276fff3eb00">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a3a8b3e11497b2aa1204f1ca380e81490"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">delivery_token_ptr mqtt::async_client::publish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1buffer__ref.html">string_ref</a>&#160;</td>
          <td class="paramname"><em>topic</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>payload</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>qos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>retained</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Publishes a message to a topic on the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topic</td><td>The topic to deliver the message to </td></tr>
    <tr><td class="paramname">payload</td><td>the bytes to use as the message payload </td></tr>
    <tr><td class="paramname">n</td><td>the number of bytes in the payload </td></tr>
    <tr><td class="paramname">qos</td><td>the Quality of Service to deliver the message at. Valid values are 0, 1 or 2. </td></tr>
    <tr><td class="paramname">retained</td><td>whether or not this message should be retained by the server. </td></tr>
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the publish to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a4491592f64dd5f32c0c1ee097cd12bb7">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="af1dbbe800b37c395e45aeb5ddd725ffd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">delivery_token_ptr mqtt::async_client::publish </td>
          <td>(</td>
          <td class="paramtype">const_message_ptr&#160;</td>
          <td class="paramname"><em>msg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Publishes a message to a topic on the server Takes an Message message and delivers it to the server at the requested quality of service. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>the message to deliver to the server </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the publish to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a571bfa072520854502370e896bb0ce58">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a06ce15b7a304e7f091db2642308a91e2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">delivery_token_ptr mqtt::async_client::publish </td>
          <td>(</td>
          <td class="paramtype">const_message_ptr&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Publishes a message to a topic on the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>the message to deliver to the server </td></tr>
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td>callback optional listener that will be notified when message delivery has completed to the requested quality of service </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the publish to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a0a209522dfbed3c6c1ecfe59383e6138">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a93cad44caab9aa829745477b170eae3d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::reconnect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reconnects the client using options from the previous connect. </p>
<p>The client must have previously called <a class="el" href="classmqtt_1_1async__client.html#aee06a4438b2075de021bbf8d5b6b0c33" title="Connects to an MQTT server using the default options. ">connect()</a> for this to work. </p>
<dl class="section return"><dt>Returns</dt><dd>token used to track the progress of the reconnect. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#aba2b3630f09fc47089d8487c6c6cf7cc">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a8b09cc4d4788420926725b7df00d3448"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void mqtt::async_client::set_callback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1callback.html">callback</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets a callback listener to use for events that happen asynchronously. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cb</td><td>callback receiver which will be invoked for certain asynchronous events </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#ab02592cece3ea4f17164bf56ce7a16f2">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="abcdbc13e54bb4ba1e52e8e405297d170"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mqtt::async_client::start_consuming </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start consuming messages. </p>
<p>This initializes the client to receive messages through a queue that can be read synchronously. </p>

</div>
</div>
<a class="anchor" id="ab5aaa839a2832009148202fa5a81c4f2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mqtt::async_client::stop_consuming </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stop consuming messages. </p>
<p>This shuts down the internal callback and discards any unread messages. </p>

</div>
</div>
<a class="anchor" id="a8b20a22af1069ef41c27566698bd90bd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::subscribe </td>
          <td>(</td>
          <td class="paramtype">const_string_collection_ptr&#160;</td>
          <td class="paramname"><em>topicFilters</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmqtt_1_1iasync__client.html#aee95659bed2446d0409ce33479f9cdad">qos_collection</a> &amp;&#160;</td>
          <td class="paramname"><em>qos</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Subscribe to multiple topics, each of which may include wildcards. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topicFilters</td><td></td></tr>
    <tr><td class="paramname">qos</td><td>the maximum quality of service at which to subscribe. Messages published at a lower quality of service will be received at the published QoS. Messages published at a higher quality of service will be received using the QoS specified on the subscribe. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the subscribe to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a8f33a38aa1735de94207418f8e301bf1">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a001340b074ef676bee012156dde830a1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::subscribe </td>
          <td>(</td>
          <td class="paramtype">const_string_collection_ptr&#160;</td>
          <td class="paramname"><em>topicFilters</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmqtt_1_1iasync__client.html#aee95659bed2446d0409ce33479f9cdad">qos_collection</a> &amp;&#160;</td>
          <td class="paramname"><em>qos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Subscribes to multiple topics, each of which may include wildcards. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topicFilters</td><td></td></tr>
    <tr><td class="paramname">qos</td><td>the maximum quality of service at which to subscribe. Messages published at a lower quality of service will be received at the published QoS. Messages published at a higher quality of service will be received using the QoS specified on the subscribe. </td></tr>
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td>listener that will be notified when subscribe has completed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the subscribe to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a066b6d5b25fb73cefc4fc781f081a723">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="ab250f9c6d9c8afd85c6e2038e640116f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::subscribe </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>topicFilter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>qos</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Subscribe to a topic, which may include wildcards. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topicFilter</td><td>the topic to subscribe to, which can include wildcards. </td></tr>
    <tr><td class="paramname">qos</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the subscribe to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a1751d5239e48a8f9a3ed509945f85ad3">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a0c1a7a708c40ebaf10ed8488c5557227"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::subscribe </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>topicFilter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>qos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Subscribe to a topic, which may include wildcards. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topicFilter</td><td>the topic to subscribe to, which can include wildcards. </td></tr>
    <tr><td class="paramname">qos</td><td>the maximum quality of service at which to subscribe. Messages published at a lower quality of service will be received at the published QoS. Messages published at a higher quality of service will be received using the QoS specified on the subscribe. </td></tr>
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td>listener that will be notified when subscribe has completed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the subscribe to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#ad36b8057725242c6238113fcbaac13aa">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a9260ee858860df9d39dd570cc15f56a1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool mqtt::async_client::try_consume_message </td>
          <td>(</td>
          <td class="paramtype">const_message_ptr *&#160;</td>
          <td class="paramname"><em>msg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Try to read the next message from the queue without blocking. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>Pointer to the value to receive the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>true</em> is a message was read, <em>false</em> if no message was available. </dd></dl>

</div>
</div>
<a class="anchor" id="a5613bf9226d6ad9b8dcf15a238c18c23"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Rep , class Period &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool mqtt::async_client::try_consume_message_for </td>
          <td>(</td>
          <td class="paramtype">const_message_ptr *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::chrono::duration&lt; Rep, Period &gt; &amp;&#160;</td>
          <td class="paramname"><em>relTime</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Waits a limited time for a message to arrive. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>Pointer to the value to receive the message </td></tr>
    <tr><td class="paramname">relTime</td><td>The maximum amount of time to wait for a message. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>true</em> if a message was read, <em>false</em> if a timeout occurred. </dd></dl>

</div>
</div>
<a class="anchor" id="a8bc99d5afd5d35aeb0888ff6c08b9ed0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Clock , class Duration &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool mqtt::async_client::try_consume_message_until </td>
          <td>(</td>
          <td class="paramtype">const_message_ptr *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::chrono::time_point&lt; Clock, Duration &gt; &amp;&#160;</td>
          <td class="paramname"><em>absTime</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Waits until a specific time for a message to occur. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>Pointer to the value to receive the message </td></tr>
    <tr><td class="paramname">absTime</td><td>The time point to wait until, before timing out. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>true</em> if a message was read, <em>false</em> if a timeout occurred. </dd></dl>

</div>
</div>
<a class="anchor" id="ae709e53471db54ec614bcc9d8978361e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::unsubscribe </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>topicFilter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Requests the server unsubscribe the client from a topic. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topicFilter</td><td>the topic to unsubscribe from. It must match a topicFilter specified on an earlier subscribe. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the unsubscribe to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a8df986b09325d22654cd161e8b4121f3">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="afff45a1d3c206dfddbea1940ae139711"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::unsubscribe </td>
          <td>(</td>
          <td class="paramtype">const_string_collection_ptr&#160;</td>
          <td class="paramname"><em>topicFilters</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Requests the server unsubscribe the client from one or more topics. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topicFilters</td><td>one or more topics to unsubscribe from. Each topicFilter must match one specified on an earlier subscribe. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the unsubscribe to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a303be54d23f0391719f8cecba42b303a">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a54d438ed68ccc28835d66097e87f0825"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::unsubscribe </td>
          <td>(</td>
          <td class="paramtype">const_string_collection_ptr&#160;</td>
          <td class="paramname"><em>topicFilters</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Requests the server unsubscribe the client from one or more topics. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topicFilters</td><td></td></tr>
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td>listener that will be notified when unsubscribe has completed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the unsubscribe to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#ae90f952e58576d6a557d333bccd35e3d">mqtt::iasync_client</a>.</p>

</div>
</div>
<a class="anchor" id="a75f8e6088b58af227b576153471da7ca"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">token_ptr mqtt::async_client::unsubscribe </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>topicFilter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmqtt_1_1iaction__listener.html">iaction_listener</a> &amp;&#160;</td>
          <td class="paramname"><em>cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Requests the server unsubscribe the client from a topics. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">topicFilter</td><td>the topic to unsubscribe from. It must match a topicFilter specified on an earlier subscribe. </td></tr>
    <tr><td class="paramname">userContext</td><td>optional object used to pass context to the callback. Use <em>nullptr</em> if not required. </td></tr>
    <tr><td class="paramname">cb</td><td>listener that will be notified when unsubscribe has completed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>token used to track and wait for the unsubscribe to complete. The token will be passed to callback methods if set. </dd></dl>

<p>Implements <a class="el" href="classmqtt_1_1iasync__client.html#a25d787395a5a26785668382930e9972d">mqtt::iasync_client</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/mqtt/<a class="el" href="async__client_8h_source.html">async_client.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>mqtt</b></li><li class="navelem"><a class="el" href="classmqtt_1_1async__client.html">async_client</a></li>
    <li class="footer">Generated on Sun Jul 23 2017 10:24:29 for Paho C++ by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
